import request from '@/utils/request'

// 查询设备列表
export function listDevice(query) {
  return request({
    url: '/iot/trail/list',
    method: 'get',
    params: query
  })
}

// 查询设备详细
export function getDevice(id) {
  return request({
    url: '/iot/trail/' + id,
    method: 'get'
  })
}

// 新增设备
export function addDevice(data) {
  return request({
    url: '/iot/trail',
    method: 'post',
    data: data
  })
}

// 修改设备
export function updateDevice(data) {
  return request({
    url: '/iot/trail', // 对应Controller中的 @PutMapping
    method: 'put',
    data: data
  })
}

// 删除设备
export function delDevice(ids) {
  return request({
    url: '/iot/trail/' + ids, // 对应Controller中的 @DeleteMapping("/{ids}")
    method: 'delete'
  })
}

export function exportDevice(query) {
    return request({
        url: '/iot/trail/export', // 对应Controller中的 @PostMapping("/export")
        method: 'post', // 注意：若依的导出通常是POST请求
        params: query
    })
}

export function turnOn(ids) {
  return request({
    url: `iot/trail/control/turnOn`,
    method: 'post',
    data: ids // 直接将ID数组作为请求体发送
  })
}

/**
 * 批量关闭设备
 * @param {Array<number>} ids - 设备ID数组
 */
export function turnOff(ids) {
  return request({
    url: `iot/trail/control/turnOff`,
    method: 'post',
    data: ids
  })
}

/**
 * 批量设置设备亮度
 * @param {object} data - 包含 ids 和 brightness 的对象
 */
export function setBrightness(data) {
  return request({
    url: `iot/trail/control/setBrightness`,
    method: 'post',
    data: data // 发送 { ids: [...], brightness: ... } 对象
  })
}

export function getMapList() {
  return request({
    url: `iot/trail/control/map-list`,
    method: 'get'
  })
}
